package com.egao.common.module.company.entity.vo;

import com.egao.common.module.company.entity.Attachment;
import com.egao.common.module.company.entity.Position;
import com.egao.common.module.company.entity.PreachLog;
import com.egao.common.module.company.entity.PreachWorker;
import com.egao.common.module.push.entity.AbilityFormDTO;
import com.egao.common.module.push.entity.PositionMatching;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 宣讲会(Preach)表实体类
 *
 * @author dl
 * @since 2021-01-25 10:30:41
 */
@Data
@ApiModel(description = "宣讲会")
public class PreachFormVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("编号")
    private Integer id;

    @ApiModelProperty("场地编号")
    private Integer fieldId;

    @ApiModelProperty("发布对象 1单位 2学校")
    private String addType;

    @ApiModelProperty("标题")
    private String title;

    @ApiModelProperty("单位编号")
    private Integer companyId;

    @ApiModelProperty("单位名称")
    private String companyName;

    @ApiModelProperty("举办时间一日期 完整时间包含时分秒")
    private Date holdTimeOne;

    @ApiModelProperty("举办时间一日期 ")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date holdTimeOneDate;

    @ApiModelProperty("举办时间一时间类型 1：上午 2：下午 3：晚上")
    private Integer holdTimeOneType;

    @ApiModelProperty("举办时间一时刻")
    private String holdTimeOneHour;

    @ApiModelProperty("举办时间二日期 完整时间包含时分秒")
    private Date holdTimeTwo;

    @ApiModelProperty("举办时间二日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date holdTimeTwoDate;

    @ApiModelProperty("举办时间二时间类型 1：上午 2：下午 3：晚上")
    private Integer holdTimeTwoType;

    @ApiModelProperty("举办时间二时刻")
    private String holdTimeTwoHour;

    @ApiModelProperty("举办时间类型（1、2、3）")
    private String applyTimeType;

    @ApiModelProperty("举办时间三日期 完整时间包含时分秒")
    private Date holdTimeThree;

    @ApiModelProperty("举办时间三日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date holdTimeThreeDate;

    @ApiModelProperty("举办时间三时间类型")
    private Integer holdTimeThreeType;

    @ApiModelProperty("举办时间三时刻")
    private String holdTimeThreeHour;

    @ApiModelProperty("选择举办时间日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date choiceHoldTimeDate;

    @ApiModelProperty("选择举办时间类型")
    private Integer choiceHoldTimeType;

    @ApiModelProperty("选择举办时间时刻")
    private String choiceHoldTimeHour;

    @ApiModelProperty("举办场地")
    private String fieldName;

    @ApiModelProperty("岗位名称")
    private String jobName;

    @ApiModelProperty("招聘人数")
    private String number;

    @ApiModelProperty("相关专业")
    private String majors;

    @ApiModelProperty("工作地点")
    private String area;

    @ApiModelProperty("学历限制  本科,硕士,博士")
    private String education;

    @ApiModelProperty("希望申请规模")
    private String scale;

    @ApiModelProperty("招聘邮箱")
    private String email;

    @ApiModelProperty("招聘网址")
    private String recruitWebsite;

    @ApiModelProperty("招聘电话")
    private String recruitMobile;

    @ApiModelProperty("招聘联系人")
    private String recruitContact;

    @ApiModelProperty("现场负责人")
    private String leader;

    @ApiModelProperty("现场负责人电话")
    private String leaderMobile;

    @ApiModelProperty("岗位薪资")
    private String salary;

    @ApiModelProperty("薪资类型  0自定义 1面议")
    private String salaryType;

    @ApiModelProperty("最低薪资")
    private Integer salaryMin;

    @ApiModelProperty("最高薪资")
    private Integer salaryMax;

    @ApiModelProperty("招聘岗位及要求、简历投递方式等")
    private String content;

    @ApiModelProperty("来校宣讲人员信息")
    private String preachPerson;

    @ApiModelProperty("招聘信息状态 0待审核 1审核通过 2审核不通过")
    private String state;

    @ApiModelProperty("审核说明")
    private String stateContent;

    @ApiModelProperty("点击量")
    private Integer hits;

    @ApiModelProperty("职位编号")
    private String positionIds;

    @ApiModelProperty("职位名称")
    private String positionNames;

    @ApiModelProperty("企业是否删除 0: 否 1：是")
    private Integer invalid;

    @ApiModelProperty("推送匹配记录")
    private String pushList;

    @ApiModelProperty("是否推送  0.推送  1.不推")
    private String pushFlag;

    @ApiModelProperty("是否发送邮件 0 发送 1 不发送")
    private String emailFlag;

    @ApiModelProperty("发布人")
    private Integer createBy;

    @ApiModelProperty("招聘信息对应职位")
    private List<Position> positions;

    @ApiModelProperty("审核人编号")
    private Integer checkUserId;

    @ApiModelProperty("附件")
    private List<Attachment> attachments;

    @ApiModelProperty("职位匹配数据")
    private List<PositionMatching> positionMatching;

    @ApiModelProperty("是否能力推荐 1、否 0、是")
    private String abilityFlag;

    @ApiModelProperty("具体需要能力")
    private String abilityContent;

    @ApiModelProperty("能力标签对象")
    private AbilityFormDTO abilityFormDTO;

    @ApiModelProperty("参与人员审核状态 0审核通过 1审核不通过 2待审核 3待完善")
    private String workerState;

    @ApiModelProperty("参与人员审核说明")
    private String workerStateContent;

    @ApiModelProperty("是否有领导出席宣讲会")
    private String leaderAttend;

    @ApiModelProperty("来校宣讲人员信息")
    private List<PreachWorker> preachWorkerList;

    @ApiModelProperty("单位修改记录")
    private List<PreachLog> preachLogList;

    @ApiModelProperty("学校新增宣讲会字段")
    private String dataField;

    @ApiModelProperty("锁定类型")
    private Integer lockType;

    @ApiModelProperty("锁定开始日期")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private Date lockStartDate;

    @ApiModelProperty("锁定开始时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lockStartTime;

    @ApiModelProperty("锁定结束时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lockEndTime;

    @ApiModelProperty("场地记录VO")
    private FieldRecordVO fieldRecordVO;

    @ApiModelProperty("业务类型：1：宣讲会")
    private Integer type;

    @ApiModelProperty("业务编号（招聘编号、宣讲会编号等）")
    private Integer businessId;

    @ApiModelProperty("预约完整时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @ApiModelProperty("预约结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @ApiModelProperty("预约日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;

    @ApiModelProperty("时间类型（上午 1 下午 2 晚上 3）")
    private String timeType;

    @ApiModelProperty("添加时间")
    private Date createTime;

}